package com.cy;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

/*
* Spring是一个资源整合框架
* 在Springboot工程中只能有一个类时启动类，这个类需要
* 1) 使用@SpringBootApplication注解进行描述
* 2) 此类中会有一个main方法，在main方法中初始化springboot默认配置
* FAQ?请问此类启动时会做什么
* 1) 通过线程(Thread)调用IO从磁盘查找对应的类并将其读取到内存(类加载)--Class Loading
* 2) 对读到内存中的类进行分析，那些是交给spring管理的，由spring管理的类中那些是配置类
* 3) 对Spring管理的类底层要进行解析，将这些类的信息封装到指定对象(Map<String,BeanDefinition>)
* 4) Spring框架可以基于Bean的配置，借助工厂构建对象，借助Map存储对象(实例)，管理对象
* 5) 我们需要对象时，可以直接从spring容器(IOC)中去取
*  */
@SpringBootApplication
public class Application {
    public static void main(String[] args) {//main方法时运行在主线程(main)
        //
        SpringApplication.run(Application.class, args);
    }
}

